import axios from 'axios';

const baseURL = import.meta.env.VITE_API_URL || '/api';

const request = axios.create({
  baseURL,
  timeout: 10000
});

// 请求拦截器 - 添加token
request.interceptors.request.use(
  (config) => {
    // 获取管理员token
    const adminToken = localStorage.getItem('adminToken');
    if (adminToken) {
      config.headers['Authorization'] = `Bearer ${adminToken}`;
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 响应拦截器 - 处理401和返回数据
request.interceptors.response.use(
  (response) => {
    return response.data;
  },
  (error) => {
    if (error.response) {
      // 401未授权，跳转到登录页
      if (error.response.status === 401) {
        console.warn('Token失效，需要重新登录');
        
        // 清除token
        localStorage.removeItem('adminToken');
        localStorage.removeItem('adminInfo');
        
        // 刷新页面，触发登录检查
        alert('登录已过期，请重新登录');
        window.location.reload();
      } else if (error.response.status === 403) {
        alert('权限不足');
      }
      
      return Promise.reject(error.response.data);
    }
    
    console.error('请求错误:', error);
    return Promise.reject(error);
  }
);

export default request;


